﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FlowBasis.Services
{
    public interface IServiceResolver
    {
        object Get(Type serviceType);
        object Get(Type serviceType, string serviceName);
        IEnumerable<object> GetAll(Type serviceType);

        object TryGet(Type serviceType);
        object TryGet(Type serviceType, string serviceName);

        T Get<T>() where T : class;
        T Get<T>(string serviceName) where T : class;
        IEnumerable<T> GetAll<T>() where T : class;

        T TryGet<T>() where T : class;
        T TryGet<T>(string serviceName) where T : class;
    }
}
